package com.smart.sso.rpc;

import java.util.List;
import java.util.Map;


public interface UserRpcService {

	/**
	 * 根据用户信息查询用户
	 * @param roleBusiCodes 角色业务编码
	 * @param orgId 组织id
	 * @param realName 姓名
	 * @param userCode 用户编号
	 * @param mobile 手机号
	 * @return
	 */
	public List<UserRpcDto> findByUserInfo(List<Integer> idList,String[] roleBusiCodes,Map<String,String> params);
	
	/**
	 * 根据用id查询用户信息
	 * @param idList 用户userId集合
	 * @return
	 */
	public List<UserRpcDto> findByUserIds(List<Integer> idList);
	
	/**
	 * 根据用户id和角色编码查询用户
	 * @param idList 用户id
	 * @param roleBusiCodes 角色编码
	 * @param params 其他组织id、姓名、isEnable等
	 * @return
	 */
	public List<UserRpcDto> findByUserIdAndRole(List<Integer> idList,String[] roleBusiCodes);
	
	/**
	 * 查询全部下属userId，包括全部子级，自己也包括在内
	 * @param chargeUserId 管理人userId
	 * @param exceptUserId 要排除的userId
	 * @param isEnable 是否启用
	 * @return
	 */
	public List<Integer> findByChargeUserId(Integer chargeUserId,Integer exceptUserId,Boolean isEnable);
	
	/**
	 * 查询全部启用上级userId，包括全部父级，自己也包括在内
	 * @param managedUserId  被管理人userId
	 * @param exceptUserId 要排除的userId
	 * @return
	 */
	public List<Integer> findByManagedUserId(Integer managedUserId,Integer exceptUserId);
}
